Openwrt的IPV6 NAT的实现 |
您所在的位置:网站首页 › openwrt 无法获取公网ipV4 › Openwrt的IPV6 NAT的实现 |
Openwrt’s implementation of IPV6 NAT 文章同时上传于本人独立博客 wherelse.cc,欢迎访问 身处校园网环境,只能通过 PPPOE 获取到一个 /64 的 IPV6 地址,如果想使用路由器则只能通过 IPV6 NAT 或者 relay 中继的方式获得地址。relay方式可以获得公网地址,但是我尝试了很多次,即时获得了公网地址,也不能成功的上网,不知问题出在何处,转而继续研究 IPV6 NAT。 IPV6 NAT 其实并不推荐,因为路由下的设备就不能获得公网的 IPV6 地址了,就失去了使用 IPV6 的一大意义,这个只推荐在校园网环境下折中这样使用了,公网家庭宽带条件下还是推荐使用穿透模式或者直接通过 DHCPV6 直接分发公网 IPV6 地址。 基本配置我这里使用的 Openwrt 的版本是 Lienol 的 19.07 ,下面的方法在我使用的这个镜像中成功实现。 在 网络->接口 中, 设置全局网络选项中的 IPv6 ULA 前缀 , 将其改为:dd00:101:101::/48。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传![]() ![]() WAN6=pppoe-wan 这里需要根据自己路由器的实际情况进行修改,如果是 PPPOE 拨号,则一般为 pppoe-wan 。 一部分情况下,NAT 就已经可以使用了,但是有时因为路由表的原因还是会导致无法上网,需要进行进一步的处理。这里开始需要使用 SSH 或者网页的 TTYD 终端连接到路由器。 进一步配置 在终端中输入:ip -6 route, 查看自己的 IPV6 网关,在 PPPOE 拨号情况下正常的网关应该类似于: default via fe80::96db:daff:fe3e:8fcf dev pppoe-wan proto ra metric 1024 ······但是可能会存在错误的网关,如: default from 2001:xxx:xxxx:xxxx::/64 via fe80::96db:daff:fe3e:8fcf dev pppoe-wan proto static metric 512 pref medium这些会导致路由可以正常使用 IPV6 而通过 NAT 分配的设备无法正常使用 IPV6,我们需要使用脚本将错误的网关进行更改。 添加网关修改脚本。在终端中输入: vi /etc/hotplug.d/iface/99-ipv6, 进入编辑界面,将以下内容复制进去: #!/bin/sh [ "$ACTION" = ifup ] || exit 0 iface=wan6 [ -z "$iface" -o "$INTERFACE" = "$iface" ] || exit 0 # Bad route 1 bad=$(ip -6 route show default | grep -v "pppoe-wan" | sed 's/expire.*//') logger -t IPv6 "Old IPv6 route w/o PPPoE: $bad" if [ "x$bad" != "x" ]; then logger -t IPv6 "Remove old IPv6 route..." status=$(ip -6 route delete $bad 2>&1) logger -t IPv6 "Done: $status" fi # Bad route 2 good=$(ip -6 route show default | grep "pppoe-wan" | sed 's/from [^ ]* //' | head -n1) logger -t IPv6 "Good route is: $good" logger -t IPv6 "Add good IPv6 route..." status=$(ip -6 route add $good 2>&1) logger -t IPv6 "Done: $status"使用 :wq 保存退出。 然后为脚本赋予可执行权限: chmod +x /etc/hotplug.d/iface/99-ipv6 重启路由,完成配置。 参考文章https://gitlab.com/XDOSC/WIFI/-/wikis/tips/ipv-6-router https://www.jianshu.com/p/eb07eaac6167 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |